Instrumentierung zum Monitoring mittels Aspekt-orientierter Programmierung
نویسندگان
چکیده
Das Monitoring großer, kontinuierlich laufender Softwaresysteme liefert wichtige Daten zu deren Überwachung und Fehlerdiagnose. Wenn die Wartbarkeit der zum Monitoring nötigen Instrumentierung und der Softwareapplikation selbst kritisch ist, verbietet sich ein manuelles Einbringen des Messcodes. Aspekt-orientierte Programmierung (AOP) ermöglicht die isolierte Programmierung von Querschnittsbelangen und das automatisierte Integrieren in den Applikationscode per Annotationen. Unser Beitrag berichtet über Erfahrungen mit AOP zur Instrumentierung für Performance-Monitoring in einem verteilten Kundenportalsystem eines Telekommunikationsanbieters. Insbesondere bedarf der durch AOP erhoffte Wartbarkeitsvorteil einer kritischen Untersuchung. Einleitung Der Betrieb von softwareintensiven, geschäftskritischen Softwaresystemen benötigt Monitoring, um die Überwachung und Analyse des Laufzeitverhaltens zu ermöglichen. Hierfür muss zusätzliche Funktionalität in das Softwaresystem integriert werden, um Messdaten zu erfassen und an Datenbanken, Protokolldateien oder Überwachungssysteme zu übermitteln. Selbst nach systematischem Entwurf eines Laufzeitmonitorings (wo, zu welchem Zweck, wie und was soll erfasst werden, vgl. [FHRS07]) stellt sich die Frage, wie der bestehende Applikationscode erweitert werden kann, ohne dass zukünftige Änderungen an der Applikation oder am Monitoring erschwert werden. Ein hierfür viel versprechender Ansatz ist durch Aspekt-orientierte Programmierung (AOP) gegeben, welche Querschnittsbelange wie Monitoring in so genannte Aspekte kapselt und zur Laufoder Kompilierzeit in markierte Methoden einwebt. Monitoring von Laufzeitverhalten Unter Monitoring versteht man das Erfassen und Aufzeichnen (teilweise auch Analysieren und Überwachen) des Laufzeitverhaltens von Komponenten, wie beispielsweise Softwarekomponenten, Diensten oder Betriebssystemprozessen (vgl. [IEE02]). Für die unteren Systemebenen existieren recht ausgereifte Monitoring-Mechanismen (z. B. Plattform-, Netzwerkund Kontainer-Monitoring). Hingegen sind Lösungen eher selten, die gezielt selbstentwickelte Anwendungen betrachten. Somit erfordert oft auch das Monitoring auf dieser Applikationsebene eigene Instrumentierungsansätze. In geschäftskriti∗Diese Arbeit wurde unterstützt von der Deutschen Forschungsgesellschaft (DFG), GRK 1076/1
منابع مشابه
Die Rolle von Features und Aspekten in der Softwareentwicklung (The Role of Features and Aspects in Software Development)
Zusammenfassung Feature-orientierte Programmierung (FOP) und Aspekt-orientierte Programmierung (AOP) sind komplementäre Technologien. Obwohl beide auf die Modularität von so genannten querschneidenden Belangen abzielen, so tun sie dies auf unterschiedliche Art und Weise. Im Rahmen der Arbeit wurde beobachtet, dass FOP und AOP kombiniert werden können, um ihre individuellen Schwächen zu überwind...
متن کاملLebenszyklusorientierte Performance-Instrumentierung verteilter Anwendungen
Leistungstests während der Entwicklungsund Testphase, Service Level Management im Betrieb und Leistungsvalidierung nach Modifikationen sind notwendige Vorgänge im Lebenszyklus verteilter Anwendungen. Performance-Instrumentierung ist damit notwendige Voraussetzung für verschiedene Aktivitäten im Lebenszyklus von Softwaresystemen. Diese Arbeit verbindet Performance-Instrumentierung mit der Method...
متن کاملRealisierungsmodelle für die aspektorientierte Datenhaltung
Aspektorientierte Datenhaltung ist ein Mittel zur querschnittlichen Erweiterung eines relationalen Datenbankschemas um ein bestimmtes Merkmal. Unter geringer Einflussnahme auf das Originaldatenmodell können Zelleinträge so anhand unterschiedlicher Merkmalsausprägungen interpretiert werden. Anwendungsszenarien sind beispielsweise die nachträgliche Internationalisierung und Versionierung eines be...
متن کاملThreadnocchio - Einsatz von Visualisierungstechniken zum spielerischen Erlernen der parallelen Programmierung mit Java-Threads
Die parallele Programmierung, d.h. die Entwicklung nebenläufiger Systeme, gewinnt auch außerhalb von Hochleistungsrechenzentren immer mehr an Bedeutung. Insbesondere wird die volle Leistungsstärke moderner Multicore-Rechner nur dann erreicht werden können, wenn die Programme den angebotenen Parallelismus auch nutzen. Allerdings pflegt die parallele Programmierung in heutigen Curricula eher ein ...
متن کاملErfahrungen bei der Entwicklung von Werkzeugen zum Reverse Engineering
Die Technik der Software-Instrumentierung zur Gewinnung von Laufzeitdaten auf Applikationsebene ist für die dynamische Programmanalyse gewinnbringend nutzbar und wurde vereinzelt auch schon eingesetzt [4]. Wie am Beispiel des Applikationsmonitors des CoSMoS-Systems gezeigt wurde, sind aus dem Bereich der Performance-Analyse bereits fertige Werkzeuge verfügbar, die diese Technik implementieren u...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007